// HSS.Net.Mail.Domain.cs
// ----------------------------------------------------------------------------
// Licensed under the MIT license
// http://www.opensource.org/licenses/mit-license.html
// ----------------------------------------------------------------------------
// HighSpeed-Solutions, LLC
// Copyright (c) 2001-2010
// ----------------------------------------------------------------------------
// File:       Domain.cs
// Author:     HSS\gbanta
// Created:    08/12/2010
// Modified:   12/04/2010
// ----------------------------------------------------------------------------
namespace HSS.Net.Mail
{
	#region Using Directives
	using System;
	using System.Collections.Generic;
	#endregion

	#region Domain
	/// <summary>
	/// Contains Internet Domain information regarding an Email Address
	/// </summary>
	internal sealed class Domain
	{
		#region Constructors
		/// <summary>
		/// Constructor
		/// </summary>
		public Domain() { }
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name="DomainName">The DomainName for this Domain</param>
		public Domain(string DomainName)
		{
			this._domainName = DomainName;
		}
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name="SmtpServer">The list of Smtp Servers for this domain and it's collection of Email Addresses</param>
		public Domain(string[] SmtpServer)
		{
			this._smtpServer = SmtpServer;
		}
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name="DomainName">The DomainName for this Domain</param>
		/// <param name="SmtpServer">The list of Smtp Servers for this domain and it's collection of Email Addresses</param>
		public Domain(string DomainName, string[] SmtpServer)
		{
			this._domainName = DomainName;
			this._smtpServer = SmtpServer;
		}
		#endregion

		#region Properties
		/// <summary>
		/// The DomainName for this Domain
		/// </summary>
		public string DomainName
		{
			get { return _domainName; }
			set { _domainName = value; }
		} string _domainName = string.Empty;
		/// <summary>
		/// The collection of TO: Email Addresses for this Domain
		/// </summary>
		public List<EmailAddress> To
		{
			get { return _to; }
			set { _to = value; }
		} List<EmailAddress> _to = new List<EmailAddress>();
		/// <summary>
		/// The collection of CC: Email Addresses for this Domain
		/// </summary>
		public List<EmailAddress> Cc
		{
			get { return _cc; }
			set { _cc = value; }
		} List<EmailAddress> _cc = new List<EmailAddress>();
		/// <summary>
		/// The collection of BCC: Email Addresses for this Domain
		/// </summary>
		public List<EmailAddress> Bcc
		{
			get { return _bcc; }
			set { _bcc = value; }
		} List<EmailAddress> _bcc = new List<EmailAddress>();
		/// <summary>
		/// An array of Smtp Servers for this domain and it's collection of Email Addresses
		/// </summary>
		public string[] SmtpServer
		{
			get { return _smtpServer; }
			set { _smtpServer = value; }
		} string[] _smtpServer;
		#endregion
	}
	#endregion
}